// 导出资源文件
export const logoUrl = '' 

// 主题色配置
export const themeColors = [
  {
    name: '默认蓝',
    value: '#409EFF',
    menuBg: '#304156',       // 深蓝灰色背景
    menuText: '#bfcbd9',     // 浅灰蓝色文字
    menuActiveText: '#409EFF' // 主题色
  },
  {
    name: '清新绿',
    value: '#42b983',
    menuBg: '#28373d',       // 深青灰色背景
    menuText: '#b8c7c1',     // 浅灰绿色文字
    menuActiveText: '#42b983' // 主题色
  },
  {
    name: '温暖橙',
    value: '#f56c6c',
    menuBg: '#2d2426',       // 深褐色背景
    menuText: '#c4b5b5',     // 浅灰粉色文字
    menuActiveText: '#f56c6c' // 主题色
  },
  {
    name: '活力黄',
    value: '#e6a23c',
    menuBg: '#2d2824',       // 深棕色背景
    menuText: '#c4bab1',     // 浅灰棕色文字
    menuActiveText: '#e6a23c' // 主题色
  },
  {
    name: '优雅紫',
    value: '#722ed1',
    menuBg: '#24212d',       // 深紫灰色背景
    menuText: '#bab6c7',     // 浅灰紫色文字
    menuActiveText: '#722ed1' // 主题色
  },
  {
    name: '湖光蓝',
    value: '#13c2c2',
    menuBg: '#213335',       // 深青色背景
    menuText: '#b0c0c1',     // 浅灰青色文字
    menuActiveText: '#13c2c2' // 主题色
  },
  {
    name: '玫瑰红',
    value: '#eb2f96',
    menuBg: '#2d2329',       // 深玫瑰色背景
    menuText: '#c2b5bc',     // 浅灰粉色文字
    menuActiveText: '#eb2f96' // 主题色
  }
]

// 应用主题色
export const applyTheme = (theme) => {
  const style = document.documentElement.style
  
  // 设置主色
  style.setProperty('--el-color-primary', theme.value)
  
  // 生成主题色的不同深浅变体
  for (let i = 1; i <= 9; i++) {
    style.setProperty(
      `--el-color-primary-light-${i}`,
      lighten(theme.value, i * 0.1)
    )
  }
  style.setProperty('--el-color-primary-dark-2', darken(theme.value, 0.2))
  
  // 设置菜单颜色
  style.setProperty('--menu-bg-color', theme.menuBg)
  style.setProperty('--menu-text-color', theme.menuText)
  style.setProperty('--menu-active-text-color', theme.menuActiveText)
  
  // 保存主题设置
  localStorage.setItem('theme-color', JSON.stringify(theme))
}

// 颜色处理函数
const lighten = (color, amount) => {
  return colorTransform(color, amount, true)
}

const darken = (color, amount) => {
  return colorTransform(color, amount, false)
}

const colorTransform = (color, amount, lighten) => {
  const rgb = hexToRgb(color)
  if (!rgb) return color
  
  const transform = lighten ? 
    (c) => Math.round(c + (255 - c) * amount) :
    (c) => Math.round(c * (1 - amount))
  
  return rgbToHex(
    transform(rgb.r),
    transform(rgb.g),
    transform(rgb.b)
  )
}

const hexToRgb = (hex) => {
  const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex)
  return result ? {
    r: parseInt(result[1], 16),
    g: parseInt(result[2], 16),
    b: parseInt(result[3], 16)
  } : null
}

const rgbToHex = (r, g, b) => {
  return '#' + [r, g, b].map(x => {
    const hex = x.toString(16)
    return hex.length === 1 ? '0' + hex : hex
  }).join('')
} 